home *** CD-ROM | disk | FTP | other *** search
/ Game Programming in C++ - Start to Finish / GameProgrammingS.iso / Peon / PeonSDK-Win32-1.0.0.exe / {app} / PeonMain / include / al / al.h next >
Encoding:
C/C++ Source or Header  |  2004-09-08  |  20.2 KB  |  612 lines

  1. #ifndef __al_h_
  2. #define __al_h_
  3.  
  4. /**
  5.  * OpenAL cross platform audio library
  6.  * Copyright (C) 1999-2000 by authors.
  7.  * This library is free software; you can redistribute it and/or
  8.  *  modify it under the terms of the GNU Library General Public
  9.  *  License as published by the Free Software Foundation; either
  10.  *  version 2 of the License, or (at your option) any later version.
  11.  *
  12.  * This library is distributed in the hope that it will be useful,
  13.  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  14.  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  15.  *  Library General Public License for more details.
  16.  *
  17.  * You should have received a copy of the GNU Library General Public
  18.  *  License along with this library; if not, write to the
  19.  *  Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  20.  *  Boston, MA  02111-1307, USA.
  21.  * Or go to http://www.gnu.org/copyleft/lgpl.html
  22.  */
  23. #include "altypes.h"
  24.  
  25. #ifdef __cplusplus
  26. extern "C" {
  27. #endif
  28.  
  29. /* WIN32, not Xbox */
  30. #ifdef _WIN32
  31. #ifndef _XBOX
  32. #ifdef _OPENAL32LIB
  33. #define ALAPI __declspec(dllexport)
  34. #else
  35. #define ALAPI __declspec(dllimport)
  36. #endif
  37. #define ALAPIENTRY __cdecl
  38. #define AL_CALLBACK 
  39. #endif
  40. #endif
  41.  
  42. #ifdef TARGET_OS_MAC
  43. #if TARGET_OS_MAC
  44. #pragma export on
  45. #endif
  46. #endif
  47.  
  48. #ifndef ALAPI
  49. #define ALAPI
  50. #endif
  51.  
  52. #ifndef ALAPIENTRY
  53. #define ALAPIENTRY
  54. #endif
  55.  
  56. #ifndef CALLBACK
  57. #define AL_CALLBACK 
  58. #endif
  59.  
  60. #define OPENAL
  61.  
  62. #ifndef AL_NO_PROTOTYPES
  63.  
  64. /**
  65.  * OpenAL Maintenance Functions
  66.  * State Management and Query.
  67.  * Error Handling.
  68.  * Extension Support.
  69.  */
  70.  
  71.  
  72. /** Renderer State management. */
  73. ALAPI void ALAPIENTRY alEnable( ALenum capability );
  74.  
  75. ALAPI void ALAPIENTRY alDisable( ALenum capability ); 
  76.  
  77. ALAPI ALboolean ALAPIENTRY alIsEnabled( ALenum capability ); 
  78.  
  79. /** Application preferences for driver performance choices. */
  80. ALAPI void ALAPIENTRY alHint( ALenum target, ALenum mode );
  81.  
  82. /** State retrieval. */
  83. ALAPI void ALAPIENTRY alGetBooleanv( ALenum param, ALboolean* data );
  84.  
  85. /** State retrieval. */
  86. ALAPI void ALAPIENTRY alGetIntegerv( ALenum param, ALint* data );
  87.  
  88. /** State retrieval. */
  89. ALAPI void ALAPIENTRY alGetFloatv( ALenum param, ALfloat* data );
  90.  
  91. /** State retrieval. */
  92. ALAPI void ALAPIENTRY alGetDoublev( ALenum param, ALdouble* data );
  93.  
  94. /** State retrieval. */
  95. ALAPI const ALubyte* ALAPIENTRY alGetString( ALenum param );
  96.  
  97.  
  98. /** State retrieval.through return value ( for compatibility ) */
  99. ALAPI ALboolean ALAPIENTRY alGetBoolean( ALenum param );
  100. ALAPI ALint ALAPIENTRY alGetInteger( ALenum param );
  101. ALAPI ALfloat ALAPIENTRY alGetFloat( ALenum param );
  102. ALAPI ALdouble ALAPIENTRY alGetDouble( ALenum param );
  103.  
  104. /**
  105.  * Error support.
  106.  * Obtain the most recent error generated in the AL state machine.
  107.  */
  108. ALAPI ALenum ALAPIENTRY alGetError( ALvoid );
  109.  
  110. /** 
  111.  * Extension support.
  112.  * Obtain the address of a function (usually an extension)
  113.  *  with the name fname. All addresses are context-independent. 
  114.  */
  115. ALAPI ALboolean ALAPIENTRY alIsExtensionPresent( const ALubyte* fname );
  116.  
  117.  
  118. /** 
  119.  * Extension support.
  120.  * Obtain the address of a function (usually an extension)
  121.  *  with the name fname. All addresses are context-independent. 
  122.  */
  123. ALAPI void* ALAPIENTRY alGetProcAddress( const ALubyte* fname );
  124.  
  125.  
  126. /**
  127.  * Extension support.
  128.  * Obtain the integer value of an enumeration (usually an extension) with the name ename. 
  129.  */
  130. ALAPI ALenum ALAPIENTRY alGetEnumValue( const ALubyte* ename );
  131.  
  132.  
  133.  
  134.  
  135.  
  136. /**
  137.  * LISTENER
  138.  * Listener is the sample position for a given context.
  139.  * The multi-channel (usually stereo) output stream generated
  140.  *  by the mixer is parametrized by this Listener object:
  141.  *  its position and velocity relative to Sources, within
  142.  *  occluder and reflector geometry.
  143.  */
  144.  
  145.  
  146.  
  147. /**
  148.  *
  149.  * Listener Gain:  default 1.0f.
  150.  */
  151. ALAPI void ALAPIENTRY alListenerf( ALenum pname, ALfloat param );
  152.  
  153. ALAPI void ALAPIENTRY alListeneri( ALenum pname, ALint param );
  154.  
  155. /**
  156.  *
  157.  * Listener Position:        ALfloat[3]
  158.  * Listener Velocity:        ALfloat[3]
  159.  */
  160. ALAPI void ALAPIENTRY alListener3f( ALenum pname,
  161.                     ALfloat f1, ALfloat f2, ALfloat f3 ); 
  162.  
  163. /**
  164.  *
  165.  * Listener Position:        ALfloat[3]
  166.  * Listener Velocity:        ALfloat[3]
  167.  * Listener Orientation:     ALfloat[6]  (forward and up vector).
  168.  */
  169. ALAPI void ALAPIENTRY alListenerfv( ALenum pname, const ALfloat* param ); 
  170.  
  171. /*
  172.  * Retrieve listener information.
  173.  */
  174. ALAPI void ALAPIENTRY alGetListeneri( ALenum pname, ALint* value );
  175. ALAPI void ALAPIENTRY alGetListenerf( ALenum pname, ALfloat* value );
  176. #ifdef LINUX_AL
  177. /* not defined under Windows and MacOS */
  178. ALAPI void ALAPIENTRY alGetListeneriv( ALenum pname, ALint* value );
  179. #endif
  180. ALAPI void ALAPIENTRY alGetListenerfv( ALenum pname, ALfloat* values );
  181.  
  182. ALAPI void ALAPIENTRY alGetListener3f( ALenum pname,
  183.                        ALfloat *f1, ALfloat *f2, ALfloat *f3 ); 
  184.  
  185. /**
  186.  * SOURCE
  187.  * Source objects are by default localized. Sources
  188.  *  take the PCM data provided in the specified Buffer,
  189.  *  apply Source-specific modifications, and then
  190.  *  submit them to be mixed according to spatial 
  191.  *  arrangement etc.
  192.  */
  193.  
  194.  
  195.  
  196. /** Create Source objects. */
  197. ALAPI void ALAPIENTRY alGenSources( ALsizei n, ALuint* sources ); 
  198.  
  199. /** Delete Source objects. */
  200. ALAPI void ALAPIENTRY alDeleteSources( ALsizei n, const ALuint* sources );
  201.  
  202. /** Verify a handle is a valid Source. */ 
  203. ALAPI ALboolean ALAPIENTRY alIsSource( ALuint sid ); 
  204.  
  205.  
  206. /** Set an integer parameter for a Source object. */
  207. ALAPI void ALAPIENTRY alSourcei( ALuint sid, ALenum param, ALint value ); 
  208. ALAPI void ALAPIENTRY alSourcef( ALuint sid, ALenum param, ALfloat value ); 
  209. ALAPI void ALAPIENTRY alSource3f( ALuint sid, ALenum param,
  210.                                   ALfloat f1, ALfloat f2, ALfloat f3 );
  211. ALAPI void ALAPIENTRY alSourcefv( ALuint sid, ALenum param, const ALfloat* values ); 
  212.  
  213. /** Get an integer parameter for a Source object. */
  214. ALAPI void ALAPIENTRY alGetSourcei( ALuint sid,  ALenum pname, ALint* value );
  215. #ifdef LINUX_AL
  216. /* not defined under Windows and MacOS */
  217. ALAPI void ALAPIENTRY alGetSourceiv( ALuint sid,  ALenum pname, ALint* values );
  218. #endif
  219. ALAPI void ALAPIENTRY alGetSourcef( ALuint sid, ALenum pname, ALfloat* value );
  220. ALAPI void ALAPIENTRY alGetSourcefv( ALuint sid, ALenum pname, ALfloat* values );
  221.  
  222. /* deprecated, included for Win compatibility */
  223. ALAPI void ALAPIENTRY alGetSource3f( ALuint sid, ALenum pname, ALfloat* value1,
  224.                                      ALfloat* value2, ALfloat* value3);
  225.  
  226. ALAPI void ALAPIENTRY alSourcePlayv( ALsizei ns, const ALuint *ids );
  227. ALAPI void ALAPIENTRY alSourceStopv( ALsizei ns, const ALuint *ids );
  228. ALAPI void ALAPIENTRY alSourceRewindv( ALsizei ns, const ALuint *ids );
  229. ALAPI void ALAPIENTRY alSourcePausev( ALsizei ns, const ALuint *ids );
  230.  
  231. /** Activate a source, start replay. */
  232. ALAPI void ALAPIENTRY alSourcePlay( ALuint sid );
  233.  
  234. /**
  235.  * Pause a source, 
  236.  *  temporarily remove it from the mixer list.
  237.  */
  238. ALAPI void ALAPIENTRY alSourcePause( ALuint sid );
  239.  
  240. /**
  241.  * Rewind a source, 
  242.  *  set the source to play at the beginning.
  243.  */
  244. ALAPI void ALAPIENTRY alSourceRewind( ALuint sid );
  245.  
  246. /**
  247.  * Stop a source,
  248.  *  temporarily remove it from the mixer list,
  249.  *  and reset its internal state to pre-Play.
  250.  * To remove a Source completely, it has to be
  251.  *  deleted following Stop, or before Play.
  252.  */
  253. ALAPI void ALAPIENTRY alSourceStop( ALuint sid );
  254.  
  255. /**
  256.  * BUFFER
  257.  * Buffer objects are storage space for sample data.
  258.  * Buffers are referred to by Sources. There can be more than
  259.  *  one Source using the same Buffer data. If Buffers have
  260.  *  to be duplicated on a per-Source basis, the driver has to
  261.  *  take care of allocation, copying, and deallocation as well
  262.  *  as propagating buffer data changes.
  263.  */
  264.  
  265.  
  266.  
  267.  
  268. /** Buffer object generation. */
  269. ALAPI void ALAPIENTRY alGenBuffers( ALsizei n, ALuint* buffers );
  270.  
  271. ALAPI void ALAPIENTRY alDeleteBuffers( ALsizei n, const ALuint* buffers );
  272.  
  273.  
  274. ALAPI ALboolean ALAPIENTRY alIsBuffer( ALuint buffer );
  275.  
  276. /**
  277.  * Specify the data to be filled into a buffer.
  278.  */
  279. ALAPI void ALAPIENTRY alBufferData( ALuint   buffer,
  280.                    ALenum   format,
  281.                    const ALvoid*    data,
  282.                    ALsizei  size,
  283.                    ALsizei  freq );
  284.  
  285. ALAPI void ALAPIENTRY alGetBufferi( ALuint buffer, ALenum param, ALint*   value );
  286. ALAPI void ALAPIENTRY alGetBufferf( ALuint buffer, ALenum param, ALfloat* value );
  287. #ifdef LINUX_AL
  288. /* not defined under Windows and MacOS */
  289. ALAPI void ALAPIENTRY alGetBufferiv( ALuint buffer, ALenum param, ALint *v);
  290. ALAPI void ALAPIENTRY alGetBufferfv( ALuint buffer, ALenum param, ALfloat *v);
  291. #endif
  292.  
  293.  
  294.  
  295. /**
  296.  * Frequency Domain Filters are band filters.
  297.  *  Attenuation in Media (distance based)
  298.  *  Reflection Material
  299.  *  Occlusion Material (separating surface)
  300.  *
  301.  * Temporal Domain Filters:
  302.  *  Early Reflections
  303.  *  Late Reverb 
  304.  *
  305.  */
  306.  
  307.  
  308. #ifdef LINUX_AL
  309. /* IASIG stuff never really used -- will probably be removed from Linux as well */
  310. /**
  311.  * EXTENSION: IASIG Level 2 Environment.
  312.  * Environment object generation.
  313.  * This is an EXTension that describes the Environment/Reverb
  314.  *  properties according to IASIG Level 2 specifications.
  315.  */
  316.  
  317. /**
  318.  * Allocate n environment ids and store them in the array environs.
  319.  * Returns the number of environments actually allocated.
  320.  */
  321. ALAPI ALsizei ALAPIENTRY alGenEnvironmentIASIG( ALsizei n, ALuint* environs );
  322.  
  323. ALAPI void ALAPIENTRY alDeleteEnvironmentIASIG( ALsizei n, ALuint* environs );
  324.  
  325. ALAPI ALboolean ALAPIENTRY alIsEnvironmentIASIG( ALuint environ );
  326.  
  327. ALAPI void ALAPIENTRY alEnvironmentiIASIG( ALuint eid, ALenum param, ALint value );
  328.  
  329. ALAPI void ALAPIENTRY alEnvironmentfIASIG( ALuint eid, ALenum param, ALuint value );
  330.  
  331. #endif
  332.  
  333. /**
  334.  * Queue stuff
  335.  */
  336. ALAPI void ALAPIENTRY alSourceQueueBuffers( ALuint sid, ALsizei numEntries, const ALuint *bids );
  337. ALAPI void ALAPIENTRY alSourceUnqueueBuffers( ALuint sid, ALsizei numEntries, ALuint *bids );
  338.  
  339. #ifdef LINUX_AL
  340. /* function no longer used */
  341. ALAPI void ALAPIENTRY alQueuei( ALuint sid, ALenum param, ALint value );
  342. #endif
  343.  
  344. /**
  345.  * Knobs and dials
  346.  */
  347. ALAPI void ALAPIENTRY alDopplerFactor( ALfloat value );
  348. ALAPI void ALAPIENTRY alDopplerVelocity( ALfloat value );
  349. ALAPI void ALAPIENTRY alDistanceModel( ALenum distanceModel );
  350.  
  351. #else /* AL_NO_PROTOTYPES */
  352.  
  353.  
  354. /** OpenAL Maintenance Functions */
  355.  
  356.       void                         (*alEnable)( ALenum capability );
  357.       void                         (*alDisable)( ALenum capability ); 
  358.       ALboolean                    (*alIsEnabled)( ALenum capability ); 
  359.       void                           (*alHint)( ALenum target, ALenum mode );
  360.       ALboolean                    (*alGetBoolean)( ALenum param );
  361.       ALint                        (*alGetInteger)( ALenum param );
  362.       ALfloat                      (*alGetFloat)( ALenum param );
  363.       ALdouble                     (*alGetDouble)( ALenum param );
  364.       void                         (*alGetBooleanv)( ALenum param,
  365.                                                       ALboolean* data );
  366.       void                         (*alGetIntegerv)( ALenum param,
  367.                                                       ALint* data );
  368.       void                         (*alGetFloatv)( ALenum param,
  369.                                                       ALfloat* data );
  370.       void                         (*alGetDoublev)( ALenum param,
  371.                                                       ALdouble* data );
  372.       const ALubyte*               (*alGetString)( ALenum param );
  373.       ALenum                       (*alGetError)( ALvoid );
  374.  
  375.       /** 
  376.        * Extension support.
  377.        * Query existance of extension
  378.        */
  379.       ALboolean                (*alIsExtensionPresent)(const ALubyte* fname );
  380.  
  381.       /** 
  382.        * Extension support.
  383.        * Obtain the address of a function (usually an extension)
  384.        *  with the name fname. All addresses are context-independent. 
  385.        */
  386.       void*                (*alGetProcAddress)( const ALubyte* fname );
  387.  
  388.       /**
  389.        * Extension support.
  390.        * Obtain the integer value of an enumeration (usually an extension) with the name ename. 
  391.        */
  392.       ALenum                (*alGetEnumValue)( const ALubyte* ename );
  393.  
  394. /**
  395.  * LISTENER
  396.  * Listener is the sample position for a given context.
  397.  * The multi-channel (usually stereo) output stream generated
  398.  *  by the mixer is parametrized by this Listener object:
  399.  *  its position and velocity relative to Sources, within
  400.  *  occluder and reflector geometry.
  401.  */
  402.       /**
  403.        *
  404.        * Listener Gain:  default 1.0f.
  405.        */
  406.       void                (*alListenerf)( ALenum pname, ALfloat param );
  407.  
  408.       /**
  409.        *
  410.        * Listener Position:        ALfloat[3]
  411.        * Listener Velocity:        ALfloat[3]
  412.        * Listener Orientation:     ALfloat[6]  (forward and up vector).
  413.        */
  414.       void                (*alListenerfv)( ALenum pname, const ALfloat* param ); 
  415.  
  416.       /*
  417.        * Retrieve listener information.
  418.        */
  419.       void              (*alGetListeneri)( ALenum pname, ALint* value );
  420.       void              (*alGetListenerf)( ALenum pname, ALfloat* value );
  421.  
  422. #ifdef LINUX_AL
  423.       void              (*alGetListeneriv)( ALenum pname, ALint* values );
  424. #endif
  425.       void              (*alGetListenerfv)( ALenum pname, ALfloat* values );
  426.  
  427. /**
  428.  * SOURCE
  429.  * Source objects are by default localized. Sources
  430.  *  take the PCM data provided in the specified Buffer,
  431.  *  apply Source-specific modifications, and then
  432.  *  submit them to be mixed according to spatial 
  433.  *  arrangement etc.
  434.  */
  435.  
  436.       /** Create Source objects. */
  437.       void                (*alGenSources)( ALsizei n, ALuint* sources ); 
  438.  
  439.       /** Delete Source objects. */
  440.       void                (*alDeleteSources)( ALsizei n, const ALuint* sources );
  441.  
  442.       /** Verify a handle is a valid Source. */ 
  443.       ALboolean        (*alIsSource)( ALuint sid ); 
  444.  
  445.       /** Set an integer parameter for a Source object. */
  446.       void                (*alSourcei)( ALuint sid, ALenum param, ALint value); 
  447.  
  448.       /** Set a float parameter for a Source object. */
  449.       void                (*alSourcef)( ALuint sid, ALenum param, ALfloat value); 
  450.  
  451.       /** Set a 3 float parameter for a Source object. */
  452.       void                (*alSource3f)( ALuint sid, ALenum param,
  453.                                   ALfloat f1, ALfloat f2, ALfloat f3 );
  454.  
  455.       /** Set a float vector parameter for a Source object. */
  456.       void                (*alSourcefv)( ALuint sid, ALenum param,
  457.                               const ALfloat* values ); 
  458.  
  459.       /** Get an integer scalar parameter for a Source object. */
  460.       void                (*alGetSourcei)( ALuint sid,
  461.                               ALenum pname, ALint* value );
  462.  
  463. #ifdef LINUX_AL
  464.       /** Get an integer parameter for a Source object. */
  465.       void                (*alGetSourceiv)( ALuint sid,
  466.                               ALenum pname, ALint* values );
  467. #endif
  468.       /** Get a float scalar parameter for a Source object. */
  469.       void                (*alGetSourcef)( ALuint sid,
  470.                               ALenum pname, ALfloat* value );
  471.  
  472.       /** Get three float scalar parameter for a Source object. */
  473.       void                (*alGetSource3f)( ALuint sid, ALenum pname,
  474.                         ALfloat* value1,
  475.                         ALfloat* value2,
  476.                         ALfloat* value3);
  477.  
  478.       /** Get a float vector parameter for a Source object. */
  479.       void                (*alGetSourcefv)( ALuint sid,
  480.                               ALenum pname, ALfloat* values );
  481.  
  482.   
  483.       /** Activate a source, start replay. */
  484.       void                (*alSourcePlay)( ALuint sid );
  485.  
  486.       /**
  487.        * Pause a source, 
  488.        *  temporarily remove it from the mixer list.
  489.        */
  490.       void                (*alSourcePause)( ALuint sid );
  491.  
  492.       /**
  493.        * Stop a source,
  494.        *  temporarily remove it from the mixer list,
  495.        *  and reset its internal state to pre-Play.
  496.        * To remove a Source completely, it has to be
  497.        *  deleted following Stop, or before Play.
  498.        */
  499.       void                (*alSourceStop)( ALuint sid );
  500.  
  501.       /**
  502.        * Rewind a souce.  Stopped paused and playing sources,
  503.        * resets the offset into the PCM data and sets state to
  504.        * AL_INITIAL.
  505.        */
  506.       void                (*alSourceRewind)( ALuint sid );
  507.  
  508.       /**
  509.        * vector forms of those functions we all love
  510.        */
  511.       void                (*alSourcePlayv)( ALsizei ns, const ALuint *ids );
  512.       void                (*alSourceStopv)( ALsizei ns, const ALuint *ids );
  513.       void                (*alSourceRewindv)( ALsizei ns, const ALuint *ids );
  514.       void                (*alSourcePausev)( ALsizei ns, const ALuint *ids );
  515.  
  516. /**
  517.  * BUFFER
  518.  * Buffer objects are storage space for sample data.
  519.  * Buffers are referred to by Sources. There can be more than
  520.  *  one Source using the same Buffer data. If Buffers have
  521.  *  to be duplicated on a per-Source basis, the driver has to
  522.  *  take care of allocation, copying, and deallocation as well
  523.  *  as propagating buffer data changes.
  524.  */
  525.  
  526.       /** Buffer object generation. */
  527.       void                (*alGenBuffers)( ALsizei n, ALuint* buffers );
  528.       void                (*alDeleteBuffers)( ALsizei n, const ALuint* buffers );
  529.       ALboolean           (*alIsBuffer)( ALuint buffer );
  530.  
  531.       /**
  532.        * Specify the data to be filled into a buffer.
  533.        */
  534.       void                (*alBufferData)( ALuint   buffer,
  535.                                         ALenum   format,
  536.                                         const ALvoid*    data,
  537.                                         ALsizei  size,
  538.                                         ALsizei  freq );
  539.  
  540.       void                (*alGetBufferi)( ALuint buffer,
  541.                                       ALenum param, ALint*   value );
  542.       void                (*alGetBufferf)( ALuint buffer,
  543.                                       ALenum param, ALfloat* value );
  544. #ifdef LINUX_AL
  545.       void                (*alGetBufferiv)( ALuint buffer,
  546.                                       ALenum param, ALint*   value );
  547.       void                (*alGetBufferfv)( ALuint buffer,
  548.                                       ALenum param, ALfloat* value );
  549. #endif
  550.  
  551. #ifdef LINUX_AL
  552. /**
  553.  * EXTENSION: IASIG Level 2 Environment.
  554.  * Environment object generation.
  555.  * This is an EXTension that describes the Environment/Reverb
  556.  *  properties according to IASIG Level 2 specifications.
  557.  */
  558.       /**
  559.        * Allocate n environment ids and store them in the array environs.
  560.        * Returns the number of environments actually allocated.
  561.        */
  562.       ALsizei                (*alGenEnvironmentIASIG)( ALsizei n, ALuint* environs );
  563.       void                (*alDeleteEnvironmentIASIG)(ALsizei n,
  564.                                               ALuint* environs);
  565.       ALboolean                (*alIsEnvironmentIASIG)( ALuint environ );
  566.       void                (*alEnvironmentiIASIG)( ALuint eid,
  567.                                       ALenum param, ALint value );
  568.       void                (*alEnvironmentfIASIG)( ALuint eid,
  569.                                       ALenum param, ALuint value );
  570.  
  571. #endif 
  572.  
  573.       /**
  574.        * Queue stuff
  575.        */
  576. #ifdef LINUX_AL
  577.       void              (*alQueuei)(ALuint sid, ALenum param, ALint value );
  578. #endif
  579.       void              (*alSourceUnqueueBuffers)(ALuint sid, ALsizei numEntries, ALuint *bids );
  580.       void              (*alSourceQueueBuffers)(ALuint sid, ALsizei numEntries, const ALuint *bids );
  581.  
  582.       void              (*alDopplerFactor)( ALfloat value );
  583.       void              (*alDopplerVelocity)( ALfloat value );
  584.       void              (*alDistanceModel)( ALenum distanceModel );
  585.  
  586. /**
  587.  * Frequency Domain Filters are band filters.
  588.  *  Attenuation in Media (distance based)
  589.  *  Reflection Material
  590.  *  Occlusion Material (separating surface)
  591.  *
  592.  * Temporal Domain Filters:
  593.  *  Early Reflections
  594.  *  Late Reverb 
  595.  *
  596.  */
  597.  
  598. #endif /* AL_NO_PROTOTYPES */
  599.  
  600. #ifdef TARGET_OS_MAC
  601. #if TARGET_OS_MAC
  602. #pragma export off
  603. #endif /* TARGET_OS_MAC */
  604. #endif /* TARGET_OS_MAC */
  605.  
  606.  
  607. #ifdef __cplusplus
  608. }  /* extern "C" */
  609. #endif
  610.  
  611. #endif /* __al_h_ */
  612.